#include <bits/posix2_lim.h>
#include <limits.h>
#include <stdint.h>
#include <stdio.h>
#include <sys/types.h>

int main()
{
    printf("signed char: [%d, %d]\n", SCHAR_MIN, SCHAR_MAX);
    printf("unsigned char: [%d, %d]\n", 0, UCHAR_MAX);

    printf("signed short: [%d, %d]\n", INT8_MIN, INT8_MAX);
    printf("unsigned short: [%d, %d]\n", 0, UINT8_MAX);

    printf("signed int: [%d, %d]\n", INT16_MIN, INT16_MAX);
    printf("unsigned int: [%d, %d]\n", 0, UINT16_MAX);

    printf("signed long: [%d, %d]\n", INT32_MIN, INT32_MAX);
    printf("unsigned long: [%d, %d]\n", 0, UINT32_MAX);

    printf("other: [%ld, %ld, %ld]\n", INT64_MIN, INT64_MAX, UINT64_MAX);

    return 0;
}